//
// Created by Administrator on 2025/3/22.
//

#include "elf_game_elf_info_controller.h"
/**
 * @brief 使用道具
 * @param type 0：消耗道具，1：消耗金币
 */
void elf_game_use_prop_common_dao_controller(prop_data_t *prop_info, int type) {
    LOG_INFO_WRAPPER("start");
    if(type != 0 && type!= 1){
        LOG_ERROR_WRAPPER("type error");
        return;
    }
    if(type == 0){
        if(prop_info->count > 0){
            prop_info->count--;
        }
    }else if(type == 1){
        if(elf_game_module.data->coin >= prop_info->coin){
            elf_game_module.data->coin -= prop_info->coin;
        }
    }

    ui_show_use_prop_prompt(prop_info->name,0);
    // 修改心情值label
    ui_elf_fresh_mood(elf_game_data.mood, prop_info->mood_value);
    elf_game_add_mood(prop_info->mood_value);
    // 刷新金币
    ui_elf_fresh_coin(elf_game_data.coin);
}

static void ui_elf_game_sync_data_timer_cb(lv_timer_t *timer) {
    LOG_INFO_WRAPPER("start");
    static bool is_success = true;

    // 请求成功
    if(is_success){
        // 恢复上一个屏幕，并且有使用成功提示框
        ui_elf_refresh_last_screen();
        prop_data_t *prop = get_prop_info_by_id(elf_game_module.data->current_use_prop_id);
        elf_game_use_prop_common_dao_controller(prop, 0);
        // 恢复定时器
        ui_elf_game_resume_flutter_show_and_hide_timer();

    }else{
        ui_elf_refresh_last_screen();
        // 删除上一个屏幕，跳到联网界面
        elf_game_module.screen->deinit_cb();
        ui_elf_not_connect_net_screen_show(&elf_game_module);

    }
    lv_timer_del(timer);
    is_success = !is_success;

}

// 跳转到数据同步中并进行请求
void elf_game_data_sync_controller(){
    LOG_INFO_WRAPPER("start");
    // 隐藏当前screen
    ui_elf_hide_current_screen();
    // 显示数据同步中
    ui_elf_data_sync_screen_show(&elf_game_module);
    // 定时器模拟请求
    lv_timer_create(ui_elf_game_sync_data_timer_cb, 5000, NULL);
}